封裝對於資料結構中的各項屬性的操作方法(method),
在不改變這個資料結構的前提下定義作用於這些元素的新的操作方法。
簡單來說就是,通過將屬性的存取及屬性變更方法分別放在不同的類別,
再透過訪問者將屬性內容從存取屬性的類別導入屬性變更方法的類別中。
這樣的設計方式可以讓各個模組透過訪問系統的屬性,來調整模組內的行為模式。
另外個人認為這個模式也比較貼近現實關係的互動,
可以讓開發者更便於了解是物件去取得資料然後執行動作,
而不是資料自己跑進來,然後執行動作。
這模式與觀察者模式在運用上有一些相反的關係。
訪問者模式是透過行為物件去跟屬性物件取得資訊,
而觀察者模式是透過屬性物件本身發出通知,讓行為物件可以跟著更新。
略為不同的是訪問者模式攜帶的資訊是狀態本身(屬性內容),
而觀察者模式一般來說帶的是事件內容。